package com.edu.individualTest.model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class IndividualTestExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public IndividualTestExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andIdIsNull() {
            addCriterion("id is null");
            return (Criteria) this;
        }

        public Criteria andIdIsNotNull() {
            addCriterion("id is not null");
            return (Criteria) this;
        }

        public Criteria andIdEqualTo(Long value) {
            addCriterion("id =", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotEqualTo(Long value) {
            addCriterion("id <>", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThan(Long value) {
            addCriterion("id >", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdGreaterThanOrEqualTo(Long value) {
            addCriterion("id >=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThan(Long value) {
            addCriterion("id <", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdLessThanOrEqualTo(Long value) {
            addCriterion("id <=", value, "id");
            return (Criteria) this;
        }

        public Criteria andIdIn(List<Long> values) {
            addCriterion("id in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotIn(List<Long> values) {
            addCriterion("id not in", values, "id");
            return (Criteria) this;
        }

        public Criteria andIdBetween(Long value1, Long value2) {
            addCriterion("id between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andIdNotBetween(Long value1, Long value2) {
            addCriterion("id not between", value1, value2, "id");
            return (Criteria) this;
        }

        public Criteria andTestNameIsNull() {
            addCriterion("testName is null");
            return (Criteria) this;
        }

        public Criteria andTestNameIsNotNull() {
            addCriterion("testName is not null");
            return (Criteria) this;
        }

        public Criteria andTestNameEqualTo(String value) {
            addCriterion("testName =", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameNotEqualTo(String value) {
            addCriterion("testName <>", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameGreaterThan(String value) {
            addCriterion("testName >", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameGreaterThanOrEqualTo(String value) {
            addCriterion("testName >=", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameLessThan(String value) {
            addCriterion("testName <", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameLessThanOrEqualTo(String value) {
            addCriterion("testName <=", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameLike(String value) {
            addCriterion("testName like", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameNotLike(String value) {
            addCriterion("testName not like", value, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameIn(List<String> values) {
            addCriterion("testName in", values, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameNotIn(List<String> values) {
            addCriterion("testName not in", values, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameBetween(String value1, String value2) {
            addCriterion("testName between", value1, value2, "testName");
            return (Criteria) this;
        }

        public Criteria andTestNameNotBetween(String value1, String value2) {
            addCriterion("testName not between", value1, value2, "testName");
            return (Criteria) this;
        }

        public Criteria andTestTypeIsNull() {
            addCriterion("testType is null");
            return (Criteria) this;
        }

        public Criteria andTestTypeIsNotNull() {
            addCriterion("testType is not null");
            return (Criteria) this;
        }

        public Criteria andTestTypeEqualTo(String value) {
            addCriterion("testType =", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeNotEqualTo(String value) {
            addCriterion("testType <>", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeGreaterThan(String value) {
            addCriterion("testType >", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeGreaterThanOrEqualTo(String value) {
            addCriterion("testType >=", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeLessThan(String value) {
            addCriterion("testType <", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeLessThanOrEqualTo(String value) {
            addCriterion("testType <=", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeLike(String value) {
            addCriterion("testType like", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeNotLike(String value) {
            addCriterion("testType not like", value, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeIn(List<String> values) {
            addCriterion("testType in", values, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeNotIn(List<String> values) {
            addCriterion("testType not in", values, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeBetween(String value1, String value2) {
            addCriterion("testType between", value1, value2, "testType");
            return (Criteria) this;
        }

        public Criteria andTestTypeNotBetween(String value1, String value2) {
            addCriterion("testType not between", value1, value2, "testType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeIsNull() {
            addCriterion("participatorType is null");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeIsNotNull() {
            addCriterion("participatorType is not null");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeEqualTo(String value) {
            addCriterion("participatorType =", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeNotEqualTo(String value) {
            addCriterion("participatorType <>", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeGreaterThan(String value) {
            addCriterion("participatorType >", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeGreaterThanOrEqualTo(String value) {
            addCriterion("participatorType >=", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeLessThan(String value) {
            addCriterion("participatorType <", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeLessThanOrEqualTo(String value) {
            addCriterion("participatorType <=", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeLike(String value) {
            addCriterion("participatorType like", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeNotLike(String value) {
            addCriterion("participatorType not like", value, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeIn(List<String> values) {
            addCriterion("participatorType in", values, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeNotIn(List<String> values) {
            addCriterion("participatorType not in", values, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeBetween(String value1, String value2) {
            addCriterion("participatorType between", value1, value2, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorTypeNotBetween(String value1, String value2) {
            addCriterion("participatorType not between", value1, value2, "participatorType");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxIsNull() {
            addCriterion("participatorMax is null");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxIsNotNull() {
            addCriterion("participatorMax is not null");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxEqualTo(Integer value) {
            addCriterion("participatorMax =", value, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxNotEqualTo(Integer value) {
            addCriterion("participatorMax <>", value, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxGreaterThan(Integer value) {
            addCriterion("participatorMax >", value, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxGreaterThanOrEqualTo(Integer value) {
            addCriterion("participatorMax >=", value, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxLessThan(Integer value) {
            addCriterion("participatorMax <", value, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxLessThanOrEqualTo(Integer value) {
            addCriterion("participatorMax <=", value, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxIn(List<Integer> values) {
            addCriterion("participatorMax in", values, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxNotIn(List<Integer> values) {
            addCriterion("participatorMax not in", values, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxBetween(Integer value1, Integer value2) {
            addCriterion("participatorMax between", value1, value2, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andParticipatorMaxNotBetween(Integer value1, Integer value2) {
            addCriterion("participatorMax not between", value1, value2, "participatorMax");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdIsNull() {
            addCriterion("testSystemId is null");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdIsNotNull() {
            addCriterion("testSystemId is not null");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdEqualTo(Long value) {
            addCriterion("testSystemId =", value, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdNotEqualTo(Long value) {
            addCriterion("testSystemId <>", value, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdGreaterThan(Long value) {
            addCriterion("testSystemId >", value, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdGreaterThanOrEqualTo(Long value) {
            addCriterion("testSystemId >=", value, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdLessThan(Long value) {
            addCriterion("testSystemId <", value, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdLessThanOrEqualTo(Long value) {
            addCriterion("testSystemId <=", value, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdIn(List<Long> values) {
            addCriterion("testSystemId in", values, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdNotIn(List<Long> values) {
            addCriterion("testSystemId not in", values, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdBetween(Long value1, Long value2) {
            addCriterion("testSystemId between", value1, value2, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andTestSystemIdNotBetween(Long value1, Long value2) {
            addCriterion("testSystemId not between", value1, value2, "testSystemId");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodIsNull() {
            addCriterion("neededPeriod is null");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodIsNotNull() {
            addCriterion("neededPeriod is not null");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodEqualTo(Integer value) {
            addCriterion("neededPeriod =", value, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodNotEqualTo(Integer value) {
            addCriterion("neededPeriod <>", value, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodGreaterThan(Integer value) {
            addCriterion("neededPeriod >", value, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodGreaterThanOrEqualTo(Integer value) {
            addCriterion("neededPeriod >=", value, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodLessThan(Integer value) {
            addCriterion("neededPeriod <", value, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodLessThanOrEqualTo(Integer value) {
            addCriterion("neededPeriod <=", value, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodIn(List<Integer> values) {
            addCriterion("neededPeriod in", values, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodNotIn(List<Integer> values) {
            addCriterion("neededPeriod not in", values, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodBetween(Integer value1, Integer value2) {
            addCriterion("neededPeriod between", value1, value2, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andNeededPeriodNotBetween(Integer value1, Integer value2) {
            addCriterion("neededPeriod not between", value1, value2, "neededPeriod");
            return (Criteria) this;
        }

        public Criteria andTestStationIdIsNull() {
            addCriterion("testStationId is null");
            return (Criteria) this;
        }

        public Criteria andTestStationIdIsNotNull() {
            addCriterion("testStationId is not null");
            return (Criteria) this;
        }

        public Criteria andTestStationIdEqualTo(Long value) {
            addCriterion("testStationId =", value, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdNotEqualTo(Long value) {
            addCriterion("testStationId <>", value, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdGreaterThan(Long value) {
            addCriterion("testStationId >", value, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdGreaterThanOrEqualTo(Long value) {
            addCriterion("testStationId >=", value, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdLessThan(Long value) {
            addCriterion("testStationId <", value, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdLessThanOrEqualTo(Long value) {
            addCriterion("testStationId <=", value, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdIn(List<Long> values) {
            addCriterion("testStationId in", values, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdNotIn(List<Long> values) {
            addCriterion("testStationId not in", values, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdBetween(Long value1, Long value2) {
            addCriterion("testStationId between", value1, value2, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTestStationIdNotBetween(Long value1, Long value2) {
            addCriterion("testStationId not between", value1, value2, "testStationId");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlIsNull() {
            addCriterion("templateUrl is null");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlIsNotNull() {
            addCriterion("templateUrl is not null");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlEqualTo(String value) {
            addCriterion("templateUrl =", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlNotEqualTo(String value) {
            addCriterion("templateUrl <>", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlGreaterThan(String value) {
            addCriterion("templateUrl >", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlGreaterThanOrEqualTo(String value) {
            addCriterion("templateUrl >=", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlLessThan(String value) {
            addCriterion("templateUrl <", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlLessThanOrEqualTo(String value) {
            addCriterion("templateUrl <=", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlLike(String value) {
            addCriterion("templateUrl like", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlNotLike(String value) {
            addCriterion("templateUrl not like", value, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlIn(List<String> values) {
            addCriterion("templateUrl in", values, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlNotIn(List<String> values) {
            addCriterion("templateUrl not in", values, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlBetween(String value1, String value2) {
            addCriterion("templateUrl between", value1, value2, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andTemplateUrlNotBetween(String value1, String value2) {
            addCriterion("templateUrl not between", value1, value2, "templateUrl");
            return (Criteria) this;
        }

        public Criteria andIsPassedIsNull() {
            addCriterion("isPassed is null");
            return (Criteria) this;
        }

        public Criteria andIsPassedIsNotNull() {
            addCriterion("isPassed is not null");
            return (Criteria) this;
        }

        public Criteria andIsPassedEqualTo(String value) {
            addCriterion("isPassed =", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedNotEqualTo(String value) {
            addCriterion("isPassed <>", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedGreaterThan(String value) {
            addCriterion("isPassed >", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedGreaterThanOrEqualTo(String value) {
            addCriterion("isPassed >=", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedLessThan(String value) {
            addCriterion("isPassed <", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedLessThanOrEqualTo(String value) {
            addCriterion("isPassed <=", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedLike(String value) {
            addCriterion("isPassed like", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedNotLike(String value) {
            addCriterion("isPassed not like", value, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedIn(List<String> values) {
            addCriterion("isPassed in", values, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedNotIn(List<String> values) {
            addCriterion("isPassed not in", values, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedBetween(String value1, String value2) {
            addCriterion("isPassed between", value1, value2, "isPassed");
            return (Criteria) this;
        }

        public Criteria andIsPassedNotBetween(String value1, String value2) {
            addCriterion("isPassed not between", value1, value2, "isPassed");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNull() {
            addCriterion("startTime is null");
            return (Criteria) this;
        }

        public Criteria andStartTimeIsNotNull() {
            addCriterion("startTime is not null");
            return (Criteria) this;
        }

        public Criteria andStartTimeEqualTo(Date value) {
            addCriterion("startTime =", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotEqualTo(Date value) {
            addCriterion("startTime <>", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThan(Date value) {
            addCriterion("startTime >", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("startTime >=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThan(Date value) {
            addCriterion("startTime <", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeLessThanOrEqualTo(Date value) {
            addCriterion("startTime <=", value, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeIn(List<Date> values) {
            addCriterion("startTime in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotIn(List<Date> values) {
            addCriterion("startTime not in", values, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeBetween(Date value1, Date value2) {
            addCriterion("startTime between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andStartTimeNotBetween(Date value1, Date value2) {
            addCriterion("startTime not between", value1, value2, "startTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNull() {
            addCriterion("endTime is null");
            return (Criteria) this;
        }

        public Criteria andEndTimeIsNotNull() {
            addCriterion("endTime is not null");
            return (Criteria) this;
        }

        public Criteria andEndTimeEqualTo(Date value) {
            addCriterion("endTime =", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotEqualTo(Date value) {
            addCriterion("endTime <>", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThan(Date value) {
            addCriterion("endTime >", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("endTime >=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThan(Date value) {
            addCriterion("endTime <", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeLessThanOrEqualTo(Date value) {
            addCriterion("endTime <=", value, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeIn(List<Date> values) {
            addCriterion("endTime in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotIn(List<Date> values) {
            addCriterion("endTime not in", values, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeBetween(Date value1, Date value2) {
            addCriterion("endTime between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andEndTimeNotBetween(Date value1, Date value2) {
            addCriterion("endTime not between", value1, value2, "endTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeIsNull() {
            addCriterion("createdTime is null");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeIsNotNull() {
            addCriterion("createdTime is not null");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeEqualTo(Date value) {
            addCriterion("createdTime =", value, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeNotEqualTo(Date value) {
            addCriterion("createdTime <>", value, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeGreaterThan(Date value) {
            addCriterion("createdTime >", value, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("createdTime >=", value, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeLessThan(Date value) {
            addCriterion("createdTime <", value, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeLessThanOrEqualTo(Date value) {
            addCriterion("createdTime <=", value, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeIn(List<Date> values) {
            addCriterion("createdTime in", values, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeNotIn(List<Date> values) {
            addCriterion("createdTime not in", values, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeBetween(Date value1, Date value2) {
            addCriterion("createdTime between", value1, value2, "createdTime");
            return (Criteria) this;
        }

        public Criteria andCreatedTimeNotBetween(Date value1, Date value2) {
            addCriterion("createdTime not between", value1, value2, "createdTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeIsNull() {
            addCriterion("updatedTime is null");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeIsNotNull() {
            addCriterion("updatedTime is not null");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeEqualTo(Date value) {
            addCriterion("updatedTime =", value, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeNotEqualTo(Date value) {
            addCriterion("updatedTime <>", value, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeGreaterThan(Date value) {
            addCriterion("updatedTime >", value, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeGreaterThanOrEqualTo(Date value) {
            addCriterion("updatedTime >=", value, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeLessThan(Date value) {
            addCriterion("updatedTime <", value, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeLessThanOrEqualTo(Date value) {
            addCriterion("updatedTime <=", value, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeIn(List<Date> values) {
            addCriterion("updatedTime in", values, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeNotIn(List<Date> values) {
            addCriterion("updatedTime not in", values, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeBetween(Date value1, Date value2) {
            addCriterion("updatedTime between", value1, value2, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andUpdatedTimeNotBetween(Date value1, Date value2) {
            addCriterion("updatedTime not between", value1, value2, "updatedTime");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdIsNull() {
            addCriterion("gxhTestDateId is null");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdIsNotNull() {
            addCriterion("gxhTestDateId is not null");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdEqualTo(Long value) {
            addCriterion("gxhTestDateId =", value, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdNotEqualTo(Long value) {
            addCriterion("gxhTestDateId <>", value, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdGreaterThan(Long value) {
            addCriterion("gxhTestDateId >", value, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdGreaterThanOrEqualTo(Long value) {
            addCriterion("gxhTestDateId >=", value, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdLessThan(Long value) {
            addCriterion("gxhTestDateId <", value, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdLessThanOrEqualTo(Long value) {
            addCriterion("gxhTestDateId <=", value, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdIn(List<Long> values) {
            addCriterion("gxhTestDateId in", values, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdNotIn(List<Long> values) {
            addCriterion("gxhTestDateId not in", values, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdBetween(Long value1, Long value2) {
            addCriterion("gxhTestDateId between", value1, value2, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andGxhTestDateIdNotBetween(Long value1, Long value2) {
            addCriterion("gxhTestDateId not between", value1, value2, "gxhTestDateId");
            return (Criteria) this;
        }

        public Criteria andAdviserIsNull() {
            addCriterion("adviser is null");
            return (Criteria) this;
        }

        public Criteria andAdviserIsNotNull() {
            addCriterion("adviser is not null");
            return (Criteria) this;
        }

        public Criteria andAdviserEqualTo(String value) {
            addCriterion("adviser =", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserNotEqualTo(String value) {
            addCriterion("adviser <>", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserGreaterThan(String value) {
            addCriterion("adviser >", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserGreaterThanOrEqualTo(String value) {
            addCriterion("adviser >=", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserLessThan(String value) {
            addCriterion("adviser <", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserLessThanOrEqualTo(String value) {
            addCriterion("adviser <=", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserLike(String value) {
            addCriterion("adviser like", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserNotLike(String value) {
            addCriterion("adviser not like", value, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserIn(List<String> values) {
            addCriterion("adviser in", values, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserNotIn(List<String> values) {
            addCriterion("adviser not in", values, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserBetween(String value1, String value2) {
            addCriterion("adviser between", value1, value2, "adviser");
            return (Criteria) this;
        }

        public Criteria andAdviserNotBetween(String value1, String value2) {
            addCriterion("adviser not between", value1, value2, "adviser");
            return (Criteria) this;
        }

        public Criteria andTeacherIdIsNull() {
            addCriterion("teacherId is null");
            return (Criteria) this;
        }

        public Criteria andTeacherIdIsNotNull() {
            addCriterion("teacherId is not null");
            return (Criteria) this;
        }

        public Criteria andTeacherIdEqualTo(Long value) {
            addCriterion("teacherId =", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdNotEqualTo(Long value) {
            addCriterion("teacherId <>", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdGreaterThan(Long value) {
            addCriterion("teacherId >", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdGreaterThanOrEqualTo(Long value) {
            addCriterion("teacherId >=", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdLessThan(Long value) {
            addCriterion("teacherId <", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdLessThanOrEqualTo(Long value) {
            addCriterion("teacherId <=", value, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdIn(List<Long> values) {
            addCriterion("teacherId in", values, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdNotIn(List<Long> values) {
            addCriterion("teacherId not in", values, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdBetween(Long value1, Long value2) {
            addCriterion("teacherId between", value1, value2, "teacherId");
            return (Criteria) this;
        }

        public Criteria andTeacherIdNotBetween(Long value1, Long value2) {
            addCriterion("teacherId not between", value1, value2, "teacherId");
            return (Criteria) this;
        }

        public Criteria andStudentIdIsNull() {
            addCriterion("studentId is null");
            return (Criteria) this;
        }

        public Criteria andStudentIdIsNotNull() {
            addCriterion("studentId is not null");
            return (Criteria) this;
        }

        public Criteria andStudentIdEqualTo(Long value) {
            addCriterion("studentId =", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotEqualTo(Long value) {
            addCriterion("studentId <>", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdGreaterThan(Long value) {
            addCriterion("studentId >", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdGreaterThanOrEqualTo(Long value) {
            addCriterion("studentId >=", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdLessThan(Long value) {
            addCriterion("studentId <", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdLessThanOrEqualTo(Long value) {
            addCriterion("studentId <=", value, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdIn(List<Long> values) {
            addCriterion("studentId in", values, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotIn(List<Long> values) {
            addCriterion("studentId not in", values, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdBetween(Long value1, Long value2) {
            addCriterion("studentId between", value1, value2, "studentId");
            return (Criteria) this;
        }

        public Criteria andStudentIdNotBetween(Long value1, Long value2) {
            addCriterion("studentId not between", value1, value2, "studentId");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}